The present invention relates to the control of electric motors, and in particular to the detection of stalling in electric motors. It has particular application in permanent magnet AC motors but can also be used in other types of motor.
In order to control an electric motor, for example using closed loop velocity control or closed loop current control, it is necessary to know the rotational position of the motor. It is well known to use a dedicated position sensor to monitor the rotational position of an electric motor. An overview of a closed loop velocity control system utilising a position sensor is shown in FIG. 1. The rotational position of the three phase motor 10 is monitored by a position sensor 12, the output of which is used to determine the motor speed W by a speed calculation algorithm 14. The system receives a motor speed request W* which is compared with the measured speed W by a comparator 16. The difference between the measured and desired speed, or the speed error, is input to a velocity controller 18 which calculates target currents i*, which are calculated in terms of D and Q current vectors, which are required to bring the motor speed towards the desired speed. These are input to a current comparator 20, which also receives measured D and Q current values generated by a current converter 22 from sensed currents in the three phases of the motor as measured by a current sensor 24. The current comparator 20 outputs the current error, i.e. the difference between the measured currents and the desired currents, and inputs that to a current controller 26. The current controller 26 outputs demanded D and Q voltage values, which are input to a converter 28. The converter 28 converts the D and Q voltage demands into phase voltage demands, i.e. the required voltage in each of the phases of the motor. The phase voltage demands are input to a PWM driver 30 which applies PWM voltages to the motor phases to produce the demanded currents.
For a number of applications a diagnostic may be required that can detect if the motor is stalled, i.e. not rotating, or not rotating at sufficient speed, in response to the current passed through it. This may be because the load on the motor is too high, or because it has become completely locked due to some physical obstruction. The position sensor can be checked directly to determine whether the motor is rotating, for example if the position sensor includes hall sensors, they will not change state if the motor is stalled.
With a sensorless position determining system the position sensor is removed and the position determined by a sensorless position algorithm from knowledge of the voltage applied to the motor and the current measured in the motor. As there is no position sensor there is no method to determine directly if the motor is rotating. Therefore in order to monitor for stalling an alternative method of detection is required.
As mentioned above, the basic requirement of stall detection is that the diagnostic can reliably detect that the motor has locked or otherwise stalled. One example of a stalled motor condition is where the load applied to the motor is greater than the torque that the motor can generate, causing the motor speed to fall to around zero. It may move very slowly or sporadically. If the load is removed the motor will operate as normal. Another example of a stalled motor condition is where the rotor has been mechanically locked, e.g. due to debris in the mechanics. The motor will not rotate at all and is unlikely to unless the cause of the locked rotor can be removed.
Known sensorless position algorithms rely on the back EMF generated in the motor to allow the rotational position to be determined. At zero and low speeds there is no or little back EMF generated. The position generated at low speeds is therefore generally incorrect or very noisy as the algorithm attempts to operate without a sufficient level of back EMF. The estimated velocity derived from the position signal is therefore also extremely noisy and overly high in magnitude. The noise levels present on the estimated velocity signal are too high to allow a threshold to be used reliably, even with heavy filtering of the signal. Therefore these known algorithms are not suitable themselves for detecting stall conditions.